package com.ruoyi.basedata.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 电-集中器管理对象 electricity_concentrator
 * 
 * @author gdqt
 * @date 2025-03-10
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("electricity_concentrator")
public class ElectricityConcentrator extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 设备归属水司
     */
    @Excel(name = "客户编号", type = Excel.Type.ALL, sort = 2)
    @TableField("tenant_id")
    private String tenantId;

    /**
     * 平台表单自增主键
     */
    @TableField("id")
    private Long id;

    /**
     * 区域ID
     */
    @TableField("sheets_code")
    @Excel(name = "区域编号", type = Excel.Type.ALL, sort = 1)
    private String sheetsCode;

    /**
     * 集中器名称
     */
    @Excel(name = "集中器名称", type = Excel.Type.ALL, sort = 3)
    @TableField("concentrator_name")
    private String concentratorName;

    /**
     * 集中器地址
     */
    @Excel(name = "集中器地址", type = Excel.Type.ALL, sort = 4)
    @TableField("concentrator_id")
    private String concentratorId;

    /**
     * 集中器型号
     */
    @Excel(name = "集中器型号", type = Excel.Type.ALL, sort = 5)
    @TableField("concentrator_type")
    private String concentratorType;

    /**
     * 集中器版本
     */
    @Excel(name = "集中器版本", type = Excel.Type.ALL, sort = 6)
    @TableField("concentrator_ver")
    private String concentratorVer;

    @TableField("protocol_id")
    @Excel(name = "协议类型", type = Excel.Type.ALL, sort = 7)
    private String protocolId;

    /**
     * 设备编号
     */
    @Excel(name = "设备编号")
    @TableField(exist = false)
    private String terminalId;


    /**
     * 协议类型
     */
    @TableField(exist = false)
    private String protocolType;

    /**
     * 抄表日期
     */
    @Excel(name = "抄表日期", type = Excel.Type.ALL, sort = 8)
    @TableField("read_date")
    private Integer readDate;

    /**
     * 安装位置
     */
    @Excel(name = "安装位置", type = Excel.Type.ALL, sort = 9)
    @TableField("install_address")
    private String installAddress;

    /**
     * 通讯类型
     */
    @Excel(name = "通讯类型", type = Excel.Type.ALL, sort = 18, dictType = "communication_type", dictTypeOnlyForExport = true)
    @TableField("communication_type")
    private String communicationType;

    @TableField(exist = false)
    private String commandType;

    @TableField("time_over")
    /** 超时时间（单位：秒 默认值：60） */
    private Integer timeOver;

    /**
     * IP地址
     */
    @Excel(name = "IP地址", type = Excel.Type.ALL, sort = 10)
    @TableField("ip_address")
    private String ipAddress;

    /**
     * 端口
     */
    @Excel(name = "端口", type = Excel.Type.ALL, sort = 11)
    @TableField("port")
    private String port;

    /**
     * 网络接入点
     */
    @TableField("net_point")
    private String netPoint;

    /**
     * 心跳周期
     */
    @Excel(name = "心跳周期", type = Excel.Type.ALL, sort = 12)
    @TableField("heartbeat_cycle")
    private Integer heartbeatCycle;

    /**
     * SIM卡号码
     */
    @Excel(name = "SIM卡号码", type = Excel.Type.ALL, sort = 13)
    @TableField("sim_num")
    private String simNum;

    /**
     * CCID
     */

    @TableField("ccid")
    private String ccid;

    /**
     * 终端位置纬度
     */
    @Excel(name = "终端位置纬度", type = Excel.Type.ALL, sort = 14)
    @TableField("lat")
    private String lat;

    /**
     * 终端位置经度
     */
    @Excel(name = "终端位置经度", type = Excel.Type.ALL, sort = 15)
    @TableField("lng")
    private String lng;

    /**
     * 终端位置经纬度
     */
    @TableField("lng_lat_temp")
    private String lngLatTemp;

    @Excel(name = "备注", type = Excel.Type.ALL, sort = 16)
    @TableField("remark")
    private String remark;

    @Excel(name = "厂家编号", type = Excel.Type.ALL, sort = 17)
    @TableField("supplier_id")
    private String supplierId;

    @TableLogic
    @TableField("del_flag")
    private Integer delFlag;

    @TableField(exist = false)
    private Integer treeType = 4;

}
